<script>

    let p = new Promise((resolve, reject) => {

        resolve("成功")

    })

    // p.then去接收正确的结果

    /* // p是promise实例
    console.log(p);


    let p1= p.then((res) => {
        console.log(res);


        // p1这promise的实例的resolve的参数：
        return 123
    })

    console.log(p1);



    let p2=p1.then((res)=>{
        console.log(res);


        // p2这promise实例的resolve的参数
        return "abc"
    })

    console.log(p2);


   let p3= p2.then((res)=>{
        console.log(res);


        return [1,2,3]
    })

    p3.then((res)=>{
        console.log(res);
    })

 */


    // p是promise实例
    console.log(p);


    p.then((res) => {
        console.log(res);//成功


        // p1这promise的实例的resolve的参数：
        return 123


     // 如果then的回调函数中的return返回的是普通值（123）
     // 那么这个普通值(123)，就是then返回的promise（p1）的resolve的参数


    }).then((res) => {
        console.log(res);// 123


        // p2这promise实例的resolve的参数
        return "abc"
    }).then((res) => {
        console.log(res);//abc


        return [1, 2, 3]
    }).then((res) => {
        console.log(res);//[1, 2, 3]

        return { name: "zs" }
    }).then((res) => {
        console.log(res);//{ name: "zs" }

        return function(){

        }
    }).then((res) => {
        console.log(res);//ƒ (){}
        

        return new Promise((resolve,reject)=>{

            resolve("这是另一个promise")
        })
    }).then((res) => {
        console.log(res,111);//这是另一个promise
        
       
    })


    // 如果then的回调函数中的return返回的是普通值
    // 那么这个普通值，就是then返回的promise的resolve的参数

    // 如果then的回调函数的return值不是普通值，而是一个promise
    // 那么这个promise就会代替then返回的那么promise









</script>